package com.jt.provider.controller;

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.logging.LogLevel;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 基于此controller演示配置中心的作用
 * 在这个controller中我们会基于日志对象
 * 进行日志输出测试
 */
//@Slf4j
@RefreshScope//告诉系统底层，配置中心内容发生变化，重新构建此对象
@RestController
public class ProviderLogController {
    private static final Logger log = LoggerFactory.getLogger(ProviderLogController.class);
    @GetMapping("/provider/log/doLog01")
    public String doLog01(){//trace<deubg<info<warn<error
        log.trace("===trace===");
        log.debug("===debug===");
        log.info("===info===");
        log.warn("===warn===");
        log.error("===error===");
        return "log config test";
    }

    /**
     * 请问这个配置何时会被读取？ 属性初始化时，
     * 请问属性何时初始化? 对象构建时
     *
     */
    @Value("${logging.level.com.jt:error}")
    private String loglevel;

    @GetMapping("/provider/log/doLog02")
    public String doLog02(){
        log.info("log.level is {}",loglevel);
        return "log level is "+ loglevel;
    }
}

